package nc.pu.pub.rest.filter;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import java.io.IOException;

public class CustomRequestInterceptor implements ContainerRequestFilter {

    @Context
    private HttpHeaders httpHeaders;

    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {
        // 在这里可以获取请求相关信息，如请求头、请求路径等
        String requestPath = requestContext.getUriInfo().getPath();
        String authorizationHeader = httpHeaders.getHeaderString("Authorization");

        // 可以进行一些验证或日志记录等操作
        if (authorizationHeader == null) {
            // 例如，如果没有授权头，可以抛出异常或进行其他处理
            throw new IOException("Authorization header is missing");
        }

        // 也可以修改请求上下文相关内容，比如添加自定义属性
        requestContext.setProperty("customAttribute", "requestInterceptorValue");
    }
}